package com.demo.main.service;
import com.demo.main.dao.BorrowRecordDao;
import com.demo.main.dao.impl.BorrowRecordDaoImpl;
import com.demo.main.entity.BorrowRecord;
import com.demo.main.utils.PaginationUtil;
import com.demo.main.vo.BorrowRecordVo;
import java.util.List;
// BorrowRecordService类，继承自BaseService泛型类，用于业务逻辑处理
public class BorrowRecordService extends BaseService<BorrowRecord, Integer> {
    // 定义一个BorrowRecordDao类型的成员变量，并初始化为BorrowRecordDaoImpl的实例
    private final BorrowRecordDao borrowRecordDao = new BorrowRecordDaoImpl();
    // 构造方法，调用父类的构造方法，并传入一个BorrowRecordDaoImpl的实例
    public BorrowRecordService() {
        super(new BorrowRecordDaoImpl());
    }
    // 根据用户ID和页码，查询当前用户的借阅记录值对象列表
    public List<BorrowRecordVo> findBorrowRecordVoByCurrentUser(int userId, int pageNum) {
        // 调用borrowRecordDao的selectBorrowRecordVoByCurrentUser方法，查询借阅记录
        return borrowRecordDao.selectBorrowRecordVoByCurrentUser(userId, pageNum);
    }
    // 根据指定条件和页码，查询借阅记录值对象列表
    public List<BorrowRecordVo> findBorrowRecordVoBySpecifiedCondition(BorrowRecordVo borrowRecordVo, int pageNum) {
        // 调用borrowRecordDao的selectBorrowRecordVoByCurrentUser方法，但应该根据条件重新设计此方法
        return borrowRecordDao.selectBorrowRecordVoByCurrentUser(borrowRecordVo.getUserId(), pageNum);
    }
    // 根据用户ID查询符合条件的借阅记录总数，并返回分页后的总页数
    public int findBorrowRecordCountByCondition(int userId) {
        // 调用borrowRecordDao的selectBorrowRecordCountByCondition方法查询总数，并使用PaginationUtil计算总页数
        return PaginationUtil.pageCount(borrowRecordDao.selectBorrowRecordCountByCondition(userId));
    }

    // 根据指定条件（只使用了用户ID）查询符合条件的借阅记录总数，并返回分页后的总数（这里逻辑也有误，未使用borrowRecordVo的其他属性）
    public Integer findBorrowRecordSpecifiedCountByCondition(BorrowRecordVo borrowRecordVo) {
        // 调用borrowRecordDao的selectBorrowRecordCountByCondition方法查询总数，并使用PaginationUtil计算总数（但这里返回的是Integer，不是页数）
        return PaginationUtil.pageCount(borrowRecordDao.selectBorrowRecordCountByCondition(borrowRecordVo.getUserId()));
    }
    // 查询所有借阅记录值对象列表
    public List<BorrowRecordVo> findAllBorrowRecordVo() {
        // 调用borrowRecordDao的selectAllBorrowRecordVo方法，但页码硬编码为1，这是不正确的
        return borrowRecordDao.selectAllBorrowRecordVo(1);
    }
}